java |
您所在的位置:网站首页 › goto java › java |
一般背景资料:
任何微处理器的硬件部分只知道它需要从一个内存地址开始连续执行每条指令——它甚至不知道在哪个内存地址停止执行指令。 汇编语言是一个从“命令”到“二进制微指令”的非常简单的转换器。“命令”列表根本不包括控制流语句,您所拥有的只是跳转指令(简单跳转或条件跳转),就是这样(好吧,有一条用于无条件无限循环和条件循环的指令)。 因此,在高级语言(如 C)中可用的控制流语句是使用这些跳转指令实现的,因为没有其他方法可以实现它们。正如goto在 C 中发生的那样,它被编译成二进制指令,只是一个简单的无条件跳转指令。 Java 和 JVM 原理:许多不同的硬件架构对于“二进制微指令”和不同的指令集具有不同的标准/格式。JVM 有自己的标准和自己的指令集。 这允许 Java 编译器始终输出相同的指令,无论可执行文件在何种硬件架构上运行;将指令从它自己的标准翻译成当前机器的标准是 JVM 的工作。 所以本质上JVM字节码是“java虚拟机”的“汇编语言”。这意味着它没有控制流指令。它有无条件跳转指令(恰好被命名为goto)。 break并且continue在最低级别恰好被实现为jump(或goto)。goto问题的关键是,如果您使用更高级别的语言,即使它可用(如在 C 中),您也希望避免使用,并且会使用更具可读性的控制结构。 有一些特殊情况(例如在 C 中),即使是尊重所有“最佳编码实践”的程序员也会使用goto例如协程实现。 其他一些为了更好或更可靠的性能而牺牲编码标准的例子是内核开发人员拥有特定于体系结构的汇编代码(C 允许您编写汇编指令)。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |